package com.lemon.file.mapper;

import com.lemon.file.domain.BiFileInfo;
import java.util.List;
import org.apache.ibatis.annotations.Param;

/**
 * 包名称：com.lemon.file.mapper
 * 类名称：BiFileInfoMapper
 * 类描述：${Description}
 * 创建人：@author huangpeng
 * 创建时间：2022年12月10日 16:47
 */

public interface BiFileInfoMapper {

    /**
     * 根据主键删除
     * @Title: deleteByPrimaryKey
     * @Description: 根据主键删除
     * @param id
     * @return: int
     * @throws:
     * @author: huangpeng
     * @Date: 2022/12/10 16:54
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 插入数据
     * @Title: insert
     * @Description: 插入数据
     * @param record
     * @return: int
     * @throws:
     * @author: huangpeng
     * @Date: 2022/12/10 16:55
     */
    int insert(BiFileInfo record);

    /**
     * 非空插入
     * @Title: insertSelective
     * @Description: 非空插入
     * @param record
     * @return: int
     * @throws:
     * @author: huangpeng
     * @Date: 2022/12/10 16:55
     */
    int insertSelective(BiFileInfo record);

    /**
     * 根据主键查询
     * @Title: selectByPrimaryKey
     * @Description: 根据主键查询
     * @param id
     * @return: BiFileInfo
     * @throws:
     * @author: huangpeng
     * @Date: 2022/12/10 16:55
     */
    BiFileInfo selectByPrimaryKey(Long id);

    /**
     * 根据主键非空更新
     * @Title: updateByPrimaryKeySelective
     * @Description: 根据主键非空更新
     * @param record
     * @return: int
     * @throws:
     * @author: huangpeng
     * @Date: 2022/12/10 16:56
     */
    int updateByPrimaryKeySelective(BiFileInfo record);

    /**
     * 根据主键更新
     * @Title: updateByPrimaryKey
     * @Description: 根据主键更新
     * @param record
     * @return: int
     * @throws:
     * @author: huangpeng
     * @Date: 2022/12/10 16:56
     */
    int updateByPrimaryKey(BiFileInfo record);

    /**
     * @Title: updateBatch
     * @Description: 批量更新
     * @param list
     * @return: int
     * @throws:
     * @author: huangpeng
     * @Date: 2022/12/10 16:56
     */
    int updateBatch(List<BiFileInfo> list);

    /**
     * @Title: updateBatchSelective
     * @Description: 批量非空更新
     * @param list
     * @return: int
     * @throws:
     * @author: huangpeng
     * @Date: 2022/12/10 16:56
     */
    int updateBatchSelective(List<BiFileInfo> list);

    /**
     * 批量插入
     * @Title: batchInsert
     * @Description: 批量插入
     * @param list
     * @return: int
     * @throws:
     * @author: huangpeng
     * @Date: 2022/12/10 16:57
     */
    int batchInsert(@Param("list") List<BiFileInfo> list);

    /**
     * 获取文件列表
     * @Title: selectBiFileInfoList
     * @Description: 获取文件列表
     * @param biFileInfo
     * @return: List<BiFileInfo>
     * @throws:
     * @author: huangpeng
     * @Date: 2022/12/24 20:51
     */
    List<BiFileInfo> selectBiFileInfoList(BiFileInfo biFileInfo);

    /**
     * 批量删除文件管理
     * @Title: deleteBiFileInfoByIds
     * @Description: 批量删除文件管理
     * @param ids 需要删除的数据主键集合
     * @return: int
     * @throws:
     * @author: huangpeng
     * @Date: 2022/12/25 12:24
     */
     int deleteByIds(Long[] ids);

     /**
      * 通过id列表查询
      * @Title: selectByIds
      * @Description: 通过id列表查询
      * @param ids 需要删除的数据主键集合
      * @return: List<BiFileInfo>
      * @throws:
      * @author: huangpeng
      * @Date: 2022/12/25 12:26
      */
    List<BiFileInfo> selectByIds(Long[] ids);

    /**
     * 通过用户id查询上传过的文件
     * @Title: selectByUserId
     * @Description: 通过用户id查询上传过的文件
     * @param userId
     * @return: List<BiFileInfo>
     * @throws:
     * @author: huangpeng
     * @Date: 2023/7/2 17:39
     */
    List<BiFileInfo> selectByUserId(String userId);

    /**
     * 通过文件url获取文件信息
     * @Title: selectByByFileUrl
     * @Description: 通过文件url获取文件信息
     * @param fileUrl 文件url
     * @return: BiFileInfo
     * @throws:
     * @author: huangpeng
     * @Date: 2023/11/20 23:52
     */
    BiFileInfo selectByByFileUrl(@Param("fileUrl") String fileUrl);

    /**
     * 根据文件url获取文件信息列表
     * @Title: getFileInfoByUrls
     * @Description: 根据文件url获取文件信息列表
     * @param fileUrls 文件url，多个逗号隔开
     * @return: List<BiFileInfo>
     * @throws:
     * @author: huangpeng
     * @Date: 2023/11/21 1:35
     */
    List<BiFileInfo> getFileInfoByUrls(@Param("fileUrls")String fileUrls);
}